package com.iflytek.day18;

public class _05_SystemDemo {
  public static void main(String[] args) {
    // 判断1~100000之间有多少个质数
    long start = System.currentTimeMillis();

    for (int i = 1; i <= 100000; i++) {
      // boolean flag = isPrime1(i);
      boolean flag = isPrime2(i);
      if (flag) {
        System.out.println(i);
      }
    }
    long end = System.currentTimeMillis();
    // 获取程序运行的总时间
    System.out.println("获取程序运行的总时间" + (end - start) + "毫秒"); // 方式一：1514 毫秒  方式二：71毫秒
  }

  // 以前判断是否为质数的方式
  public static boolean isPrime1(int number) {
    for (int i = 2; i < number; i++) {
      if (number % i == 0) {
        return false;
      }
    }
    return true;
  }

  // 改进之后判断是否为质数的方式（效率高）
  public static boolean isPrime2(int number) {
    for (int i = 2; i <= Math.sqrt(number); i++) {
      if (number % i == 0) {
        return false;
      }
    }
    return true;
  }
}
